\section{级数求和(P1035)}

\subsection{题目描述}
已知：Sn=1+1/2+1/3+…+1/n。显然对于任意一个整数K，当n足够大的时候，Sn​大于K。
现给出一个整数K（$1 \leq k \leq 15$），要求计算出一个最小的n；使得$S_n>K$。

\subsection{输入}
一个正整数K

\subsection{输出}
一个正整数N

\subsection{样例}
\textbf{输入样例}
\begin{lstlisting}
1
\end{lstlisting}
\textbf{输出样例}
\begin{lstlisting}
2
\end{lstlisting}

%\subsection{提示}

\subsection{分析}
本题数据范围比较小，直接把代码写出来就行了。

如果K的范围很大，那么就需要借助于调和函数的求和公式，用二分法来求。

\[
    H(k) = \sum \limits_{n=1}^{k} \frac{1}{n} = \ln k + \gamma + \varepsilon_k
\]

其中$\gamma =  0.57721566490153286060651209 $，$\varepsilon_k = \frac {1} {2k} $。 
               
\subsection{代码}
\begin{lstlisting}
#include <iostream>

using namespace std; 

int main()
{
	double k, d, sum=0; 
	int n; 
	cin>>k; 
	for (n=1; ;n++) {
		d = (double)n;
		sum += 1./d; 
		if (sum>k) 
			break; 
	}
	cout<<n; 
	return 0; 		
}
\end{lstlisting}


